/*
 * 项目名称:    wms-server-jeecg
 * 创建人员:    hansen
 * 创建时间:    2023-09-14
 */
package org.jeecg.modules.dock.service;

import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.dock.entity.dto.request.*;
import org.jeecg.modules.dock.entity.dto.response.*;

import java.util.List;

/**
 * SAP数据对接接口中转服务
 *
 * @author hansen
 * @version 1.0.0
 * @date 2023-09-14 15:29:28
 */
public interface SapDockingRepeaterService {
    /**
     * 销售出库过账发送记录接口
     *
     * @param list 数据
     * @return java.util.List<org.jeecg.modules.dock.entity.dto.response.SellOutboundResponseDTO>
     * @author hansen
     * @since 2023/9/14 15:34
     */
    List<SellOutboundResponseDTO> repeaterSapSellOutbound(List<SellOutboundRequestDTO> list);

    /**
     * 成品UB单收货
     *
     * @param list
     * @return java.util.List<org.jeecg.modules.dock.entity.dto.response.ProductReceptionResponseDTO>
     * @author hansen
     * @since 2023/9/15 8:29
     */
    List<ProductReceptionResponseDTO> repeaterSapProductHarvest(List<ProductReceptionRequestDTO> list);

    /**
     * 研发领料
     *
     * @param list
     * @return java.util.List<org.jeecg.modules.dock.entity.dto.response.SapBaseResponseDTO>
     * @author hansen
     * @since 2023/9/15 9:04
     */
    List<SapBaseResponseDTO> repeaterSapResearchGet(List<ResearchGetRequestDTO> list);

    /**
     * 结构件/夹件UB单收货
     *
     * @param list
     * @return java.util.List<org.jeecg.modules.dock.entity.dto.response.ProductReceptionResponseDTO>
     * @author hansen
     * @since 2023/9/15 9:14
     */
    List<ProductReceptionResponseDTO> constructionReceiving(List<ProductReceptionRequestDTO> list);

    /**
     * 辅料成本中心领用
     *
     * @param list
     * @return java.util.List<org.jeecg.modules.dock.entity.dto.response.IngredientsGetResponseDTO>
     * @author hansen
     * @since 2023/9/15 9:19
     */
    List<IngredientsGetResponseDTO> sapIngredientsGet(List<IngredientsGetRequestDTO> list);

    /**
     * 接收sap主数据
     *
     * @param masterDataRequestDTO
     * @return
     */
    MasterDataResponseDTO sapMaster(MasterDataRequestDTO masterDataRequestDTO);

    /**
     * 钢卷批次特性调用
     *
     * @param type
     */
    List<SapSteelCoilResponseDTO> getSapSteelCoilInfo(String type, String num);

    /**
     * 原卷UB单收货
     *
     * @param list
     */
    List<OriginalVolumeUbOrderTakeOverResponseDTO> getOriginalVolumeUbOrderTakeOver(List<OriginalVolumeUbOrderTakeOverRequestDTO> list);

    /**
     * 外购收货接口（辅材）
     *
     * @param list
     */
    List<PurchaseReceiptAssistResponseDTO> getPurchaseReceiptAssist(List<PurchaseReceiptAssistRequestDTO> list);

    /**
     * 外购收货接口（原卷/成品）
     *
     * @param list
     */
    List<PurchaseReceiptFinishProductResponseDTO> getPurchaseReceiptFinishProduct(List<PurchaseReceiptFinishProductRequestDTO> list);

    List<MaterialBatchPeculiarityResponseDTO> materialPeculiarity(List<MaterialBatchPeculiarityDTO> list);

    /**
     * 纸筒采购订单创建接口
     *
     * @return
     */
    List<PaperPurchaseResponseDTO> sapPushPaperPurchase(List<PaperPurchaseRequestDTO> list);

    /**
     * 条料调拨订单发送接口
     */
    SapBaseResponseDTO sendingOfMaterialTransferOrders(List<MaterialTransferOrderRequestDTO> list);

    /**
     * 库存盘点调整接口
     */
    List<InventoryUpdateResponseDTO> inventoryCountAdjustment(List<InventoryAdjustRequestDTO> list);

    /**
     * 库存更新接口
     */
    List<InventoryUpdateResponseDTO> inventoryUpdate(List<InventoryUpdateRequestDTO> list);

    /**
     * 销售出库单打印查询接口
     *
     * @param searchPrintInfoRequestDTO
     * @return
     */
    SearchPrintInfoHeadResponseDTO saleOutboundPrintInfo(SearchPrintInfoRequestDTO searchPrintInfoRequestDTO);

    /**
     * 客供料收货接口
     *
     * @param searchPrintInfoRequestDTO
     * @return
     */
    List<CustomerSuppliedMaterialResponseDTO> customerSuppliedMaterialHarvest(List<CustomerSuppliedMaterialHarvestRequestDTO> searchPrintInfoRequestDTO);


    /**
     * 销售出库单打印查询接口
     *
     * @return
     */
    Object testSap(Object data, String code);

    /**
     * 批次库存查询接口
     *
     * @param dto 查询条件
     * @return Result
     * @author DongPeng
     * @date 2024/1/4 9:07
     */
    Result batchStockQuery(List<BatchStockQueryRequestDTO> dto);
}
